Intelligent routing of notifications related to media programming

ABSTRACT

This disclosure provides systems, methods and apparatus, including computer programs encoded on computer storage media for intelligent routing of notifications related to media programming. In one aspect, a smart television (TV) can be implemented to track a user&#39;s TV watching behavior, and anticipate programming based on that behavior. In some other aspects, the smart TV can be implemented to detect a user&#39;s presence, and based on that detection, can automatically change the TV channel to media programming analyzed to be desirable to the user. In some further aspects, the smart TV can be implemented to transmit notification instructions to electronic devices within a network in an attempt to alert the user to upcoming media programming. Additionally, the smart TV can be implemented to transmit detection instructions to the electronic devices within the network, whereby the electronic devices attempt to detect a user&#39;s presence through voice or facial recognition.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Patent Application claims priority to India Provisional PatentApplication No. 2017/41041435, filed Nov. 20, 2017 entitled “IntelligentRouting of Notifications Related to Media Programming,” and IndiaProvisional Application No. 2018/41024599, filed Jul. 2, 2018, entitled“Intelligence in Smart Televisions (TVs),” and assigned to the assigneehereof. The disclosures of the prior Applications are considered part ofand are incorporated by reference in this Patent Application.

TECHNICAL FIELD

This disclosure relates generally communications between electronicdevices, and more particularly to routing notifications related to mediaprogramming to one or more electronic devices and delivering customizedcontent and display setting preferences to users viewing an electronicdevice.

DESCRIPTION OF THE RELATED TECHNOLOGY

Advances in electronic technology have reduced the cost of increasinglycomplex and useful wireless communication devices. Cost reduction andconsumer demand have proliferated the use of wireless communicationdevices such that they are practically ubiquitous in modern society. Asthe use of wireless communication devices has expanded, so has thedemand for new and improved features of wireless communication devices.More specifically, wireless communication devices that perform newfunctions, or that perform functions faster, more efficiently or morereliably are often sought after.

Advances in electronic technology have also resulted in smaller,powerful, and “smarter” wireless communication devices. For example, themarket for and adoption of smart televisions (TVs) is expected to seesubstantial growth. While smart TVs continue to increase in popularity,it would be desirable to further integrate smart TV functionality withexisting wireless communication devices, and to utilize smart TVfunctionality to deliver customized content.

SUMMARY

The systems, methods and devices of this disclosure each have severalinnovative aspects, no single one of which is solely responsible for thedesirable attributes disclosed herein.

One innovative aspect of the subject matter described in this disclosurecan be implemented in a method of routing instructions for notificationsrelated to media programming. The method can include receiving anindication of media programming, identifying one or more devices havingat least one of a microphone or a camera, instructing at least oneidentified device to detect audio signals using its respectivemicrophone, or to detect visual signals using its respective camera,selecting at least one device of the one or more devices based on thedetected audio signal or detected visual signal, and providinginstructions to the selected device to output a notification related tothe media programming. In some implementations, an electronic devicereceives the indication of media programming.

In some implementations, the electronic device is a smart television(TV). In some implementations, the one or more devices includes at leastone of a mobile device, a smartphone, a laptop computer, a tabletdevice, a wearable device, an Internet of Things (IoT) device, anInternet of Everything (IoE) device, an IoT hub, an IoE hub, or anothersmart TV. In some implementations, the smart TV is capable of turning onthe media programming. In some implementations, the smart TV turns onthe media programming based on the received indication.

In some implementations, the media programming is one of a livetelevision program, a recorded television program, a broadcasttelevision program, or an application-provided program. The mediaprogramming can be an upcoming program, intended to be presented on theelectronic device. In some implementations, the media programming isidentified based on analysis of a user profile.

In some implementations, selecting the first device based on thedetected audio signal includes recognizing a voice. In someimplementations, recognizing the voice includes a voice recognitiontechnique. The method can further include determining a distance to therecognized voice. In some implementations, selecting the first device isbased on the determined distance to the recognized voice.

In some implementations, selecting the first device based on thedetected visual signals includes recognizing a face. In someimplementations, recognizing the face includes a face recognitiontechnique. In some implementations, the notification includes at leastone of a push message, a SMS message, a Way2SMS message, an audio alert,an audio message, or an email message.

Another innovative aspect of the subject matter described in thisdisclosure can be implemented in an electronic device capable ofcommunicating with one or more devices. The electronic device caninclude a network interface, a non-transitory computer-readable medium,and a processor in communication with the network interface, and thenon-transitory computer-readable medium, and capable of executingprocessor-executable program code stored in the non-transitorycomputer-readable medium, to cause the electronic device to operate in aparticular manner. The electronic device can receive an indication ofupcoming media programming, identify one or more devices incommunication with the electronic device, each of the one or moredevices including at least one of a microphone or a camera, instruct atleast one identified device to detect audio signals using its respectivemicrophone, or to detect visual signals using its respective camera,select at least one device of the one or more devices based on thedetected audio signal or detected visual signal, and provideinstructions to the selected device to output a notification related tothe upcoming media programming. Additionally, the electronic device canbe implemented to perform any of the aspects of the innovative methoddescribed above.

Another innovative aspect of the subject matter described in thisdisclosure can be implemented in an electronic device capable ofcommunicating with one or more devices. The electronic device caninclude means for receiving an indication of upcoming media programming,means for identifying one or more devices in communication with theelectronic device, each of the one or more devices including at leastone of a microphone or a camera, means for instructing at least oneidentified device to detect audio signals using its respectivemicrophone, or to detect visual signals using its respective camera,means for selecting at least one device of the one or more devices basedon the detected audio signal or detected visual signal, and means forproviding instructions to the selected device to output a notificationrelated to the upcoming media programming. Additionally, the electronicdevice can be implemented to perform any of the aspects of theinnovative method described above.

Another innovative aspect of the subject matter described in thisdisclosure can be implemented in a non-transitory computer-readablemedium including processor-executable program code capable of causing aprocessor of an electronic device to route instructions fornotifications related to media programming. The non-transitorycomputer-readable medium can include processor-executable program codecapable of causing the processor to receive an indication of upcomingmedia programming, identify one or more devices in communication withthe electronic device, each of the one or more devices including atleast one of a microphone or a camera, instruct at least one identifieddevice to detect audio signals using its respective microphone, or todetect visual signals using its respective camera, select at least onedevice of the one or more devices based on the detected audio signal ordetected visual signal, and provide instructions to the selected deviceto output a notification related to the upcoming media programming.Additionally, the electronic device can be implemented to perform any ofthe aspects of the innovative method described above.

Another innovative aspect of the subject matter described in thisdisclosure can be implemented in a method for presenting mediaprogramming on a smart television (TV). The method can include obtainingTV channel viewing data, wherein the TV channel viewing data includes atleast one of a historical time and a historical date that one or morechannels were viewed on the smart TV, obtaining at least one of acurrent time and a current date, processing the TV channel viewing datato determine a probability of the one or more channels being viewed onthe smart TV based on at least one of the current time and the currentdate, and presenting a favorite channel list on the smart TV based onthe determined probability of the one or more channels being viewed. Insome implementations, one or more channels are presented on the favoritechannel list in order of the determined probability.

In some implementations, processing the TV channel viewing data includesemploying a neural network model. In some implementations, employing theneural network model includes determining a duration that the one ormore channels were viewed on the smart TV for each of the at least oneof the historical time and the historical date, setting a threshold timeduration, comparing the determined duration to the threshold timeduration, and filtering out the one or more channels viewed below thethreshold time duration.

In some implementations, the method includes adjusting at least one of avolume or a brightness of the smart TV, where the adjusting is based onat least one of the historical time and the historical date. In someimplementations, the method includes detecting a presence of a user, andaccessing user profile data associated with the user, where the userprofile includes the TV channel viewing data. In some implementations,detecting the presence of the user includes employing one or more of acamera, a microphone, or a fingerprint sensor associated with at leastone of the smart TV, a mobile device, a smartphone, a laptop computer, atablet device, a wearable device, an Internet of Things (IoT) device, anInternet of Everything (IoE) device, an IoT hub, or an IoE hub. In someimplementations, adjusting at least one of a volume or a brightness ofthe smart TV, is based on the user profile data. In someimplementations, the method includes restricting access to one or morechannels based on the user profile data.

Another innovative aspect of the subject matter described in thisdisclosure can be implemented in an electronic device capable ofpresenting media programming. The electronic device includes a networkinterface, a non-transitory computer-readable medium, and a processor incommunication with the network interface, and the non-transitorycomputer-readable medium, and capable of executing processor-executableprogram code stored in the non-transitory computer-readable medium, tocause the electronic device to operate in a particular manner. Theelectronic device can obtain television (TV) channel viewing data,wherein the TV channel viewing data includes at least one of ahistorical time and a historical date that one or more channels wereviewed on a smart TV, obtain at least one of a current time and acurrent date, process the TV channel viewing data to determine aprobability of the one or more channels being viewed on the smart TVbased on at least one of the current time and the current date andpresent a favorite channel list on the smart TV based on the determinedprobability of the one or more channels being viewed. Additionally, theelectronic device can be implemented to perform any of the aspects ofthe innovative method described above.

Another innovative aspect of the subject matter described in thisdisclosure can be implemented in an electronic device capable ofpresenting media programming. The electronic device can include meansfor obtaining television (TV) channel viewing data, wherein the TVchannel viewing data includes at least one of a historical time and ahistorical date that one or more channels were viewed on a smart TV,means for obtaining at least one of a current time and a current date,means for processing the TV channel viewing data to determine aprobability of the one or more channels being viewed on the smart TVbased on at least one of the current time and the current date, andmeans for presenting a favorite channel list on the smart TV based onthe determined probability of the one or more channels being viewed.Additionally, the electronic device can be implemented to perform any ofthe aspects of the innovative method described above.

Another innovative aspect of the subject matter described in thisdisclosure can be implemented in a non-transitory computer-readablemedium including processor-executable program code configured to cause aprocessor of an electronic device to obtain television (TV) channelviewing data, wherein the TV channel viewing data includes at least oneof a historical time and a historical date that one or more channelswere viewed on a smart TV, obtain at least one of a current time and acurrent date, process the TV channel viewing data to determine aprobability of the one or more channels being viewed on the smart TVbased on at least one of the current time and the current date, andpresent a favorite channel list on the smart TV based on the determinedprobability of the one or more channels being viewed. Additionally, theprocessor of the electronic device can be implemented to perform any ofthe aspects of the innovative method described above.

Details of one or more implementations of the subject matter describedin this disclosure are set forth in the accompanying drawings and thedescription below. Other features, aspects, and advantages will becomeapparent from the description, the drawings and the claims. Note thatthe relative dimensions of the following figures may not be drawn toscale.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example wireless communication system including a smartTV, a first mobile device, a second mobile device and an IoT device.

FIG. 2 shows a layout of an example environment for intelligent routingof notifications related to media programming.

FIG. 3 shows an example flowchart for intelligent routing ofnotifications related to media programming.

FIG. 4 shows a layout of another example environment for intelligentrouting of notifications related to media programming.

FIG. 5 shows another example flowchart for intelligent routing ofnotifications related to media programming.

FIG. 6 shows an example method for intelligent routing of notificationsrelated to media programming.

FIG. 7 shows an example training data table used for a neural networkmodel.

FIG. 8 shows an example neural network model applying the training datatable of FIG. 7.

FIG. 9 shows an example neural network model outputting theprobabilities of a user viewing a channel at 7 am based on the trainingdata table of FIG. 7 and the Equations described in FIG. 8

FIG. 10 shows an example neural network model outputting theprobabilities of a user viewing a channel at 8 am based on the trainingdata table of FIG. 7 and the Equations described in FIG. 8.

FIG. 11 shows an example method for presenting media programming on anelectronic device.

FIG. 12 shows an example electronic device for intelligent routing ofnotifications related to media programming.

FIG. 13 shows an example electronic device that may be connected to theelectronic device shown in FIG. 12.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

The following description is directed to certain implementations for thepurposes of describing the innovative aspects of this disclosure.However, a person having ordinary skill in the art will readilyrecognize that the teachings herein can be applied in a multitude ofdifferent ways. The described implementations may be implemented in anydevice, system or network that is capable of transmitting and receivingoptical signals or RF signals according to any wireless communicationstandard, including any of the IEEE 802.11 standards, or the Bluetooth®standards. The described implementations also can be implemented in anydevice, system or network that is capable of transmitting and receivingRF signals according to any of the following technologies or techniques:code division multiple access (CDMA), frequency division multiple access(FDMA), time division multiple access (TDMA), Global System for Mobilecommunications (GSM), GSM/General Packet Radio Service (GPRS), EnhancedData GSM Environment (EDGE), Terrestrial Trunked Radio (TETRA),Wideband-CDMA (W-CDMA), Evolution Data Optimized (EV-DO), 1×EV-DO, EV-DORev A, EV-DO Rev B, High Speed Packet Access (HSPA), High Speed DownlinkPacket Access (HSDPA), High Speed Uplink Packet Access (HSUPA), EvolvedHigh Speed Packet Access (HSPA+), Long Term Evolution (LTE), AMPS, orother known signals that are used to communicate within a wireless,cellular or internet of things (IOT) network, such as a system utilizing3G, 4G or 5G, or further implementations thereof, technology.

The techniques described herein relate to methods, systems, devices, orapparatuses supporting communication between a first device, such as asmart television (TV), and a second device, with such non-limitingexamples including a mobile device, an Internet of Things (IoT) device,an Internet of Everything (IoE) device, or a wearable device. Smart TVscontinue to gain traction in the consumer marketplace, as they generallyinclude the traditional functionality of television sets and set-topboxes provided through broadcasting media, in addition to providingInternet-based TV, online interactive media, over-the-top (OTT) content,on-demand media streaming, and home networking access. Smart TVs oftenemploy software applications, or “apps,” which can be preloaded into thedevice, or installed from an app store or app marketplace. Some smartTVs include microphones or cameras, which can be built-in the device, orotherwise associated with the device. Additionally, smart TVs can beimplemented to receive login credentials from a user, and can beimplemented to tailor content for a particular user based on that user'sprofile. Furthermore, smart TVs can be implemented to communicate withother devices over a communication network.

According to the disclosed techniques, a smart TV can be implemented totrack a user's TV watching behavior, and anticipate programming based onthat behavior. In some implementations, a software applicationassociated with the smart TV can track and log media programming beingdisplayed on the smart TV. The log, or user profile, can include avariety of data associated with TV viewing, such as the day of the week,the time the smart TV was turned on, the channel watched, how long thechannel was watched, etc. After a number of log entries, the softwareapplication can analyze the data and anticipate when the user desires towatch TV, and which channel the user desires to view. In other words,the smart TV can be implemented to learn a user's TV watchingpreferences. For example, if a user powers on the smart TV around 7 am(i.e., between 6:50 and 7:10 am, or more specifically, between 6:55 and7:05 am) and changes the channel to the morning news on channel 3, aftera few days of tracking this behavior, the smart TV can be implemented toautomatically turn on channel 3 at approximately 7 am.

In some implementations, the software application can employ neuralnetwork modelling. The neural network model can be implemented todynamically train itself if a particular channel has been watched formore than a threshold time duration in a given hour. When a channel hasbeen watched for a time duration greater than the threshold, the neuralnetwork model can be implemented to add this channel to a “favoritechannel list.” For example, if a user powers on the smart TV around 7 amand watches channel 3 for greater than an example threshold limit of 20minutes, the neural network model can train itself to add channel 3 tothe favorite channel list. The favorite channel list can be stored inmemory at the smart TV, or in a software application associated with thesmart TV, and can enable the user to choose from a list of more than onefavorite channel at a particular time.

Additionally, according to the disclosed techniques, a smart TV can beimplemented to detect a particular user's presence, and based on thatdetection, automatically change the TV channel to one desired by theuser. In some implementations, the smart TV can employ a microphone orcamera to detect a user's voice or face. The smart TV can include one ormore software applications associated with voice recognition or facerecognition, and once a particular user is detected, the smart TV canautomatically turn on to the user's favorite channel based on the userprofile, or to a channel showcasing programming that may be desirable tothe user, based on an analysis of the user profile. For example, upondetecting a voice associated with a user profile, the smart TV can beimplemented to turn on the channel most frequently watched by that user.As another example, and where the user has shown an affinity forwatching sporting events, upon detecting the user's face and comparingit with an image of the user, the smart TV can be implemented to scanthe channel listings for sporting event programming, before presentingeither a sports-related program to the user, or a list of sports-relatedprogramming options to the user.

In some implementations, the smart TV can detect that the user is achild and can invoke parental control settings to restrict particularprogramming. For example, if the smart TV's microphone or camera detectsa child attempting to access the smart TV without the supervision of anadult, i.e., no adult user is detected nearby, the smart TV can blockcertain channels from being accessed, or can automatically switch to adefault channel, like the Disney® channel.

Alternatively, or additionally, the user can proactively identifythemselves by using a fingerprint sensor integrated into any number ofsmart devices, such as a smartphone, a smart TV remote, etc., andloading a user profile based on the fingerprint to the smart TV. In suchan implementation, upon identifying the user, the smart TV can beconfigured to turn on the user's favorite channel at that time of day,or configured to present a favorite channel list to the user based onthe neural network model implementation.

In some implementations, in addition to providing customized channelselection, or a favorite channel list, based on the presence of aparticular user, the smart TV can be configured to automatically adjustthe volume and the brightness settings. The smart TV can be implementedto adjust the volume and brightness settings automatically based on, forexample, ambient light conditions, time of the day, location of the TVwithin a house or building, user detection, and user's preferred viewingor display settings parameters, etc.

Moreover, according to the disclosed techniques, when upcoming mediaprogramming matches the user's preferences, or the user scheduled areminder for a particular media program, the smart TV can transmit oneor more instructions to local devices in an attempt to notify, orotherwise alert the user to the upcoming media programming. Theseinstructions can command the local devices to present one or more audialor visual notifications related to the upcoming media programming.Returning to the example where the user has expressed an affinity forwatching sporting events, before the start of a Major League BaseballWorld Series® game and where the user is outside of the smart TV's owndetection zone, the smart TV can send one or more notification-relatedinstructions to the user's smartphone device, tablet device, IoT deviceand wearable device, in an attempt to alert the user to the start of thebaseball game. Additionally, or alternatively, the smart TV can instructthe local devices to detect a particular user's presence, and once theuser is detected, the detecting local device can send a notification, orotherwise alert the user to the upcoming media programming. For example,the smart TV can instruct the smartphone device, tablet device, IoTdevice and wearable device to detect the user's presence, such asthrough voice or face recognition, and whichever device detects theuser' presence can be implemented to notify the user of the impendingstart of the baseball game.

Particular implementations of the subject matter described in thisdisclosure can be implemented to realize one or more of the followingpotential advantages. By utilizing the artificial intelligence andmachine learning techniques described herein, smart TVs can beimplemented to turn on the user's desired programming automatically,thereby improving user experience. The automatic channel selection, thefavorite channel list presentation, the automatic volume and brightnesscontrol adjustments, and even automatically turning on the smart TVitself, may prevent the user from missing critical moments of desiredmedia programming. Additionally, by using the techniques describedherein, users may enjoy personalized programming based on the userprofile built by the smart TV's software algorithms, or neural networkmodelling. The personalized programming may be achieved by the smart TVselecting particular broadcast programming, or by initiating aparticular application, such as Netflix®, HBO Go®, etc., based on thedetection of a particular user. The detection mechanisms also can beused to improve parental control features on the smart TV, such as byrestricting access to certain channels, such as those in a predefinedlist, or dynamically restricting access based on the content to bedisplayed on the smart TV. Moreover, routing notifications related tomedia programming to one or more electronic devices, may prevent theuser from missing the viewing of the desired media programming.Furthermore, once an electronic device detects the user's presencethrough voice or facial recognition, the other electronic devices in thenetwork can cease their detection efforts, as well as ceasenotifications efforts, thereby enabling a quieter environment.

FIG. 1 shows an example wireless communication system 100 including asmart TV 110, a first mobile device 120, a second mobile device 130 andan IoT device 140. The smart TV 110 also may be referred to as aconnected TV, hybrid TV, or some other suitable terminology, whichgenerally describes a television set with integrated connectivityfeatures, and processing capabilities. The smart TV 110 iscommunicatively coupled (shown as line 152) to a communication network150.

The first mobile device 120 and the second mobile device 130 also may bereferred to as a wireless device, a remote device, a handheld device, ora subscriber device, or some other suitable terminology, where the“device” also may be referred to as a unit, a station, a terminal, or aclient. The first mobile device 120 and the second mobile device 130 maybe implemented as any computing device configured to receive, processand otherwise handle audio or visual or audio/visual (i.e., video)communications over a communications network. The first mobile device120 also may be a personal electronic device such as a cellular phone, asmartphone, a personal digital assistant (PDA), a tablet device, alaptop computer, a personal computer, a gaming console, a virtual oraugmented reality device, a drone, or other electronic system. In someimplementations, the first mobile device 120, the second mobile device130, or both may be considered a wearable device. Wearable devices alsomay be referred to as wearable technology, wearable gadgets, wearables,or some other suitable terminology, which generally describeselectronics and software-based technology that is worn on the body,either as an accessory, or as part of material used in clothing. Forease in description, hereinafter, the first mobile device 120 will bereferred to as a smartphone 120, and the second mobile device 130 willbe referred to as a tablet device 130. The smartphone 120 iscommunicatively coupled (shown as line 154) to the communication network150, and the tablet device 130 is communicatively coupled (shown as line156) to the communication network 150.

The IoT device 140 also may be referred to as an IoE device, an IoT hub,and IoE hub, or any other physical device, vehicle, or home appliancethat is embedded with electronics and network connectivity, which enablethese objects to connect and exchange data. The IoT device 140 also maybe referred to as a virtual assistant device, such as Amazon Alexa®,Google Home®, etc., a wearable device, such as smart watches, earbuds,headphones, Google Glass®, etc., an in-vehicle entertainment orcommunication system, a home security system, or any device having aninterface to a communications network and suitable input and outputdevices. The IoT device is communicatively coupled (shown as line 158)to the communication network 150.

The communication network 150 enables devices to communicate with oneanother over a communication medium. Examples of protocols that can beused to form communication networks 150 can include, near-fieldcommunication (NFC) technology, radio-frequency identification (RFID)technology, Bluetooth, Bluetooth Low Energy (BLE), Zigbee, or Wi-Fi(i.e., Institute of Electrical and Electronics Engineers (IEEE) 802.11)technology, the Internet, or other such types of protocols describedthroughout this disclosure. The smart TV 110, the smartphone 120, thetablet device 130 and the IoT device 140 can communicate with each otherusing communication protocols provided by one or more of these examplecommunication networks 150. A person having ordinary skill in the artwill readily appreciate that the smart TV 110 may simultaneously employmultiple different wireless technologies to establish connections withvarious devices. For example, the smart TV 110 can connect to thesmartphone 120 and the IoT device 140 using a Wi-Fi connection, while itis connected to the tablet device 130 via a Bluetooth connection. Insome implementations, such as where the smart TV 110 is outside therange of, for example, the smartphone 120, other communication protocolscan be employed. For example, device-to-device (D2D) protocols,long-term evolution direct (LTE-D), narrow band Internet of Things(NB-IoT), LTE category M (LTE CAT-M), Vehicle to X (V2X), etc., can beutilized to facilitate communication between the smart TV 110 and thesmartphone 120. Any or all of these different technologies may beemployed independently or concurrently according to different examples.

In some implementations, the smart TV 110 can be paired to one or moreof the smartphone 120, the tablet device 130 and the IoT device 140through one or more of the described communication protocols. Thepairing of the devices can occur through the communication network 150,can occur directly between the devices, or can be established through apeer-to-peer relationship. Once paired, the devices can be implementedto exchange data and information. For example, the smart TV 110 can beimplemented to transmit instructions to one or more of the smartphone120, the tablet device 130 and the IoT device 140, and the smartphone120, the tablet device 130 and the IoT device 140 can communicate withone another, including the smart TV 110, directly, or through anotherdevice, such as a wireless access point (AP). Upon receivinginstructions, the smartphone 120, the tablet device 130 and the IoTdevice 140 can process the instructions and can perform one or moreactions based on the processed instructions. The phrase “based on” doesnot mean “based only on,” unless expressly specified otherwise. In otherwords, the phrase “based on” describes both “based only on” and “basedat least on.” In some implementations, processing the instructions caninclude determining an appropriate action to perform based on thereceived instructions. The term “determining” encompasses a wide varietyof actions and, therefore, “determining” can include calculating,computing, processing, deriving, investigating, looking up (such as vialooking up in a table, a database or another data structure),ascertaining and the like. Also, “determining” can include receiving(such as receiving information), accessing (such as accessing data in amemory) and the like. Also, “determining” can include resolving,selecting, choosing, establishing and other such similar actions.

In some implementations, the one or more actions performed by thesmartphone 120, the tablet device 130 and the IoT device 140 can includeproviding notifications, such as a push message, an SMS message, aWay2SMS message, an email message, an audio alert, or an audial message,in addition to other similar such notifications. For example, uponreceiving instructions to provide a notification of upcoming mediaprogramming to the user, the tablet device 130 can be implemented topresent a notification on the display interface of the tablet device 130indicating that media programming is being presented on the smart TV110. In some other implementations, the one or more actions performed bythe smartphone 120, the tablet device 130 and the IoT device 140 caninclude turning on microphones, cameras, or sensors, such as detectors,biosensors, sensory receptors, gas sensors, image sensors,microelectromechanical systems (MEMS) sensors, and other such suitablesensors, in an attempt to detect the presence of a particular userwithin the device's vicinity. For example, upon receiving instructionsto detect the presence of a particular user in the device's vicinity,the IoT device 140 can be implemented to enable the microphone and uponrecognizing the user's voice, can provide an audial message informingthe user that media programming on the smart TV 110 is about tocommence. In some other implementations, the smart TV 110, thesmartphone 120, the tablet device 130 and the IoT device 140 can beimplemented to communicate with one another that the user has beendetected by that particular device, and the other devices can ceasetheir detection efforts.

In some implementations, the smart TV 110 can maintain a list orregistry of devices that are connected, or have previously connected orregistered with the smart TV 110. The list may identify each device andmay include information about the capabilities of the devices. Thecapabilities can include whether or not the particular device hastechnical functionality related to audio input, audio output, videoinput, video output, voice recognition, and image recognition, inaddition to other capabilities, such as whether or not the particulardevice has sensor functionality. For example, the list for thesmartphone 120, the tablet device 130 and the IoT device 140 in thisexample may include data such as the following:

Audio Audio Video Video Voice Image ID Connection Status Output InputOutput Input Recognition Recognition 120 Connected Yes Yes Yes Yes YesYes 130 Suspended/Available Yes Yes Yes Yes Yes Yes 140 Connected YesYes No No Yes No X Not Available No No Yes Yes No Yes

In the example list above, each of the smartphone 120, the tablet device130 and the IoT device 140 is represented, as well as their respectiveconnection status. In addition, although not depicted, device X, whichis not currently available, also can be included on the list. Forexample, device X may be powered off or out of range, and has videoinput and output capabilities, but not audio input and outputcapabilities.

FIG. 2 shows a layout of an example environment 200 for intelligentrouting of notifications related to media programming. The depictedexample can be representative of a user's 201 dwelling having multiplerooms, 202, 204, 206 and 208. A smart TV 210 is located in the livingroom 202, a smartphone 220 is located in the bedroom 204, a tabletdevice 230 is located in the study room 206, and an IoT device 240 and awireless access point (AP) 250 are located in the kitchen 208. In thedepicted example, the smart TV 210, the smartphone 220, the tabletdevice 230, and the IoT device 240 can be implemented to communicatewith one another through the wireless AP 250. For example, the wirelessAP 250 can be implemented to provide a Wi-Fi network throughout thedwelling for the smart TV 210, the smartphone 220, the tablet device230, and the IoT device 240 to communicate.

As depicted, the user 201 is in the study room 206, browsing theInternet on the tablet device 230, and the clock 260 indicates the timeis 3 pm. In this example implementation, the user 201 enjoys watchingsporting event highlights on the smart TV 210. In some implementations,the user 201 can schedule a programming reminder on the smart TV 210 toturn on the sporting event highlight show, “SportsCenter” by ESPN® at 3pm. In some other implementations, the smart TV 210 can track the user's201 TV watching behavior over a period of time, and based on thattracked behavior, can automatically display SportsCenter at 3 pm withoutthe user 201 scheduling a programming reminder. In such implementations,the smart TV 210 can employ one or more software algorithms to track andlog the user's 201 TV viewing habits, and can build a user profile basedon those TV viewing habits.

For example, if the user 201 turns on the smart TV 210 to a particularchannel, such as the ESPN channel, at a particular time, or within aparticular window of time, such as between 2:55 pm and 3:05 pm, on aperiodic basis, such as every Monday, Wednesday and Friday, after oneweek of tracking and logging the user's TV viewing habits, the smart TV110 can be configured to automatically turn on, or turn to, the ESPNchannel at 3 pm for each subsequent Monday, Wednesday and Friday. Insome implementations, one or two days may be a sufficient period of timefor the software algorithms to track the user's 201 TV viewing habits,build a user profile based on those habits, and determine an appropriatechannel, or TV application, to display. In some other implementations,the period of time may be three, four or five days, or one or two weeks,or even one or more months, before an appropriate user profile isestablished and TV viewing habits can be predicted. A person havingordinary skill in the art will readily recognize that the trackingperiod can vary based on the smart TV, the software application, or theoriginal equipment manufacturer's implementation, in addition to theconsistency of the user's viewing habits. Once the user profile isestablished, the software algorithm operating on the smart TV 210 can beimplemented to identify media programming potentially of interest to theuser based on analyzing the user profile.

In some implementations, the user's interests may change over time,therefore, the software algorithm can track when the user 201 changesthe channel away from the programming selected by the smart TV 210.After a number of times, such as the user 201 changing the channeltwice, three times, four times, five times, etc., the software algorithmcan be implemented to determine a new channel which is likely desired bythe user 201. For example, after the user 201 actively changes thechannel from SportsCenter to the cooking channel on Monday and Wednesdayafternoons, by Friday at 3 pm, the software algorithm may be configuredto update the user profile, and replace the SportsCenter preference withthe cooking channel preference at 3 pm.

Since the user 201 enjoys watching sporting highlights, but is locatedin the study room 206 and away from the living room 202 where the smartTV 210 is located, it would be desirable to notify the user 201 that themedia programming is commencing. As disclosed herein, the smart TV 210can be implemented to communicate with the smartphone 220, the tabletdevice 230, and the IoT device 240, and instruct the devices to notifythe user 201 of the upcoming media programming scheduled to be displayedon the smart TV 210. In some implementations, the smart TV 210 caninstruct each of the smartphone 220, the tablet device 230, and the IoTdevice 240 to present a notification to the user. If in textual form,the notification may read, for example, and certainly not limited to,“Media Programming starting now,” or “Media Programming starting in fiveminutes,” or “Now: SportsCenter on channel ESPN,” or other such similartextual notifications, alerting the user 201 that the desired TV show isplaying. If in audial form, the audio notification may state, forexample, and certainly not limited to, “Alert, Media Programmingcommencing,” or “Now playing on the Smart TV, SportsCenter on ESPN,” orother such types of audio notifications, again alerting the user 201that the desired media program is scheduled to start. In some otherimplementations, the user 201 can program the smart TV 210 to instructonly one of the smartphone 220, the tablet device 230, and the IoTdevice 240 to present a notification to the user 201. For example, ifthe user 201 spends afternoons in the study room 206, the user 201 canprogram the smart TV 210 to instruct only the tablet device 230, whichis located in the study room 206, to present a media programmingnotification to the user 201.

In some implementations, the smart TV 210 can be implemented to adjustits volume and brightness settings based on one or more criteria. Thecriteria can include time of the day, day of the week, ambient lightconditions, location of the TV within a house or building, userdetection, and one or more of the user's preferred viewing or displaysettings parameters. The volume and brightness settings can bepredefined or programmed by the user 201 using one or more smart TV 210interfaces. For example, the user 201 can program the volume settings tonot exceed 25% of the maximum smart TV 210 volume when the smart TV 210is operating past 10 pm. In such an implementation, by automaticallycontrolling the volume of the smart TV 210 late at night, the smart TV210 may not wake the user's 201 family members who are trying to sleep.In another example, the user 201 can program the brightness settings tonot exceed 50% of the maximum smart TV 210 brightness when the smart TVis operating past 10 pm. Or alternatively, the user 201 can program thebrightness settings to be at least 50% of the maximum smart TV 210brightness when the smart TV is operating in the day time between thehours of 11 am and 4 pm. A person having ordinary skill in the art willreadily recognize that other smart TV 210 volume and brightness settingsmay be desirable based on the particular living circumstances.

In some other implementations, the smart TV 210 can be implemented toadjust its volume and brightness settings based on artificialintelligence and machine learning. Artificial intelligence, or machinelearning capabilities, residing in the processor or memory of the smartTV 210 can be implemented to adjust or otherwise control the volume andbrightness settings at the smart TV 210. Using similar criteria to theimplementation described above, plus recognition and analysis of theuser's 201 viewing patterns, artificial intelligence or machine learningalgorithms in the smart TV 210 can be implemented to showcase, orselect, the user's 201 favorite channel, present a favorite channellist, and to automatically adjust the volume and brightness when theuser 201 is detected. For example, after the smart TV 210 has beenturned on, or the channel has been changed, the smart TV 210 can beimplemented to detect the user's 201 presence using face, voice orfingerprint recognition, the techniques of which are further describedbelow. Additionally, the smart TV 210 can be implemented to identify thetime of day, the day of the week, and to sense or otherwise detectambient light through one or more sensors, as described below. Based onthe detected user, the time of day, day of the week and ambient lightingconditions, the smart TV's 210 artificial intelligence or machinelearning algorithms can be implemented to predict suitable volume andbrightness settings for the particular user 201. If the user 201 desiresother volume or brightness settings at that particular time of day, andin those conditions, the smart TV 210 can be implemented to log thesechanges in volume and brightness and store the settings in the userprofile, or other user behavior database, where the new entries will berecognized and analyzed by the artificial intelligence or machinelearning algorithms associated with the smart TV 210. In someimplementations, the artificial intelligence or machine learningalgorithms can be stored remotely from the smart TV 210, such as in thecloud, or on a remote server. Examples of non-limiting artificialintelligence or machine learning algorithms that can be utilized includetime series algorithms, such as recurrent neural networks (RNN), or longshort term memory (LSTM).

Throughout this disclosure, descriptions of the media programming can berepresentative of a live television program, a recorded televisionprogram, a broadcast television program, or an application-providedprogram. Application-provided programs can include such non-limitedexamples like Netflix, HBO Go, Amazon Video®, Hulu®, Roku®, Chromecast®,etc. In some implementations, when a user 201 receives a notificationthat an application-provided program is scheduled to begin, through thedevice receiving the notification, the user 201 can instruct the smartTV 210 to open the application-provided program and commence playing theprogram. For example, at 7:57 pm, the user 201 may receive anotification that “Game of Thrones®” is playing at 8 pm on theapplication HBO Go on the tablet device 230. Upon receipt of thatnotification, the user 201 may provide input (such as tactile or voiceinput) at the tablet device 230 which instructs the smart TV 210 to openthe HBO Go application and commence playing the Game of Thrones episode.

FIG. 3 shows an example flowchart 300 for intelligent routing ofnotifications related to media programming. At block 301, a user profilecan be established on the smart TV. The user profile can be establishedvia user login, such as through a username and password combination on asmart TV login interface. For example, the user can login through thesmart TV's own interface, such as by entering their Samsung.com orLG.com account information, or the user can login through one or morecommercial applications, such as Facebook®, Google®, etc. Alternatively,the user profile can be established based on the user's fingerprints.Using a fingerprint sensor integrated into one or more of the smart TV210's remote control, the smartphone 220, the tablet device 230 or theIoT device 240, the user 201 can upload fingerprint data to be used as abasis for a user profile. The smart TV can be implemented to keep theuser logged in until the user logs out, or until another user logs in.The user profile can include a variety of information about the user'sTV viewing habits, such as the user's interests, favorite shows,favorite channels, favorite genres, popular viewing times, popularviewing days, etc.

At block 302, based on the user's profile, the smart TV can recognizethat scheduled media programming is of interest to the user. In someimplementations, the smart TV will note the scheduled media programmingin the user's profile, and will be prepared to turn on the mediaprogramming at the scheduled time.

When the scheduled time arrives, at decision block 303, the smart TVdetermines if the user is watching the smart TV. In someimplementations, the smart TV can determine that the user is watchingthe smart TV by reviewing the user login information. In some otherimplementations, the smart TV can determine that the user is watchingthe smart TV based on the user's TV viewing habits. In some furtherimplementations, the smart TV can determine that the user is watchingthe smart TV based on employing a camera associated with the smart TV todetect the user's face, or a microphone associated with the smart TV todetect the user's voice. In such an implementation, the smart TV cancompare a user profile picture, or another such picture, to the user'sface, or utilize a voice recognition technique to compare the user'svoice to a recorded voice sample.

If the user is watching the smart TV, at block 304, the mediaprogramming is presented. If the user is not presently watching thesmart TV, at block 305, the smart TV can be implemented to send aninstruction to a particular device. For example, the smart TV can sendan instruction to the user's preferred electronic device, such as thetablet device 230 in the example described with respect to FIG. 2. Uponreceiving the instruction, the preferred electronic device can present amedia programming-related notification to the user. Alternatively, atblock 306, the smart TV can be implemented to send one or moreinstructions to a plurality of electronic devices, such as thesmartphone 220, the tablet device 230, and the IoT device 240 asdescribed with respect to FIG. 2. Upon receiving the instructions, theplurality of electronic devices can present media programming-relatednotifications to the user. In some implementations, the plurality ofelectronic devices will present, or otherwise deliver, the notificationson a periodic basis. For example, the electronic devices can send aninitial notification, and send follow on notifications every three,four, five, etc., minutes until the user dismisses the notifications, oruntil the smart TV indicates that the user is now watching the smart TVand the notifications are to cease.

FIG. 4 shows a layout of an example environment 400 for intelligentrouting of notifications related to media programming. Similar to theenvironment 200 depicted in FIG. 2, a smart TV 410 is located in theliving room 402, a smartphone 420 is located in the bedroom 404, atablet device 430 is located in the study room 406, and an IoT device440 and a wireless access point (AP) 450 are located in the kitchen 408.Also, similar to the environment 200 depicted in FIG. 2, the smart TV410, the smartphone 420, the tablet device 430, and the IoT device 440can be implemented to communicate with one another through the wirelessAP 450. In this depicted example, the user 401 is located in the kitchen408, and the clock 460 indicates the time is 3 pm. Like the example inFIG. 2, SportsCenter is scheduled to be displayed on the smart TV 410 at3 pm, and the smart TV 410 does not detect the user's presence in theliving room 402. Therefore, the smart TV 410 begins to instruct theconnected devices to present a notification to the user 401 indicatingthat media programming, potentially of interest, is commencing on thesmart TV 410.

When the smart TV 410 instructs each of the smartphone 420, the tabletdevice 430, and the IoT device 440 to send media programming-relatednotifications to the user 401, the user 401, and other people in thevicinity, may be irritated by the multiple contemporaneousnotifications. To reduce the annoyance or inconvenience of multipledevices sending contemporaneous notifications, the smart TV 410 caninstead be implemented to instruct the smartphone 420, the tablet device430, and the IoT device 440 to attempt to detect the user's presence,and the device that is most proximate to the user 401 will provide amedia programming-related notification to the user 401.

In some implementations, the smart TV 410 can instruct, or otherwisecommand, the smartphone 420, the tablet device 430, and the IoT device440 to activate its respective microphone to attempt to detect theuser's voice. The smartphone 420, the tablet device 430, and the IoTdevice 440 may activate its respective microphones and begin receivingaudio signals. As the smartphone 420, the tablet device 430, and the IoTdevice 440 receive audio signals from their activated microphones, theyperform voice recognition to attempt to recognize one or more voicesbased on the received audio signals. The smartphone 420, the tabletdevice 430, and the IoT device 440 can be implemented to perform voicerecognition on the received audio signals, or can forward the receivedaudio signals to another computing device to perform voice recognition.Some non-limiting examples of voice recognition techniques includeMel-Frequency Cepstral Coefficients (MFCC), Dynamic Time Wrapping (DTW),Hidden Markov models (HMMs), neural networks models, and end-to-endautomatic speech recognition (ASR). In some implementations, thesmartphone 420, the tablet device 430, and the IoT device 440 may obtainfurther information about the received audio signals, such as anamplitude of the one or more detected voices, signal-to-noise ratios(SNR), voice strength signals, etc. The further information may be usedto determine a relative distance from the respective device to the user401.

In some implementations, the smart TV 410 may provide a name, useridentification, user profile, or other information to the smartphone420, the tablet device 430 and the IoT device 440 to identify eachrecognized voice. In addition, the smart TV 410, the smartphone 420, thetablet device 430 and the IoT device 440 may provide information relatedto the voice information, such as a quality or confidence rating of thevoice recognition, SNR information, etc., to the other electronicdevices. For example, the audio signals received by the IoT device 440may include faint voice information, such as if the speaker is toodistant from the microphone for detection. Alternatively, backgroundnoise may interfere with the voice recognition techniques, and as such,a SNR value may be low, or a confidence rating for the recognizedvoice(s) may be too low to ascertain the particular user. Suchinformation may be provided to the smart TV 410 along with informationabout one or more recognized voices. In some implementations, the smartTV 410 also may activate its own microphone in an attempt to detect theuser's voice.

Upon recognizing the user's 401 voice based on the received audiosignals, the recognizing device can be implemented to identify itself tothe other devices. In some implementations, the other devices candeactivate their microphones, and return to standby operation. In someother implementations, the other devices can keep the respectivemicrophones activated until they receive instructions from the smart TV410, or another device in the communication network, to deactivate themicrophone and return to standby operation. The recognizing device canpresent the media programming-related notification to the user 401. Forexample, with the user 401 located in the kitchen 408, and uponrecognizing the user's 401 voice from the received audio signals, theIoT device 440 can request or instruct the smart TV 410, the smartphone420 and the tablet device 430 to deactivate their respectivemicrophones. The IoT device 440 also can present an audio notificationto the user 401 indicating that desired media programming is commencingon the smart TV 410.

After receiving information about recognized voices from one or more ofthe smartphone 420, the tablet device 430 and the IoT device 440, andperforming voice recognition on its own obtained audio signals, thesmart TV 410, or the devices themselves, can determine whether the userwas identified by any of the devices. If the user was identified by onedevice, the smart TV 410 can then transmit instructions to that deviceto generate a notification to alert the user of the upcoming mediaprogramming. If the user was identified by multiple devices, the smartTV 410 can determine which of the devices to select, and transmit theinstructions to that device, or it can select multiple devices andtransmit instructions to each device. For example, if the user 401 waslocated in between the bedroom 404 and the study room 406, the smart TV410 may select either the smartphone 420, or the tablet device 430, orboth, based on different factors, such as strength of the respectiveaudio signals, the SNR of the respective audio signals, etc., to providea notification to the user 401.

In some other implementations, the smart TV 410 can instruct thesmartphone 420, the tablet device 430, and the IoT device 440 toactivate its camera to attempt to detect the user's face or facialside-profile. The smartphone 420, the tablet device 430, and the IoTdevice 440 may activate its respective camera, if applicable, and beginreceiving visual signals. In some implementations, the smart TV 410 alsomay activate its own camera in an attempt to detect the user's face. Thevisual signals can include one or more captured images. The smartphone420, the tablet device 430, and the IoT device 440 can be implemented toperform facial recognition on the received visual signals, or canforward to received visual signals to another computing device toperform facial recognition. Some non-limiting examples of facialrecognition techniques include multilayer perception (MLP), geometricrecognition, photometric recognition, eigenfaces, linear discriminantanalysis, elastic bunch graph matching, HMMs, dynamic link matching,three-dimensional face recognition, skin texture analysis, or utilizingthermal cameras. The smartphone 420, the tablet device 430, and the IoTdevice 440 may provide the smart TV 410 with an indication that one ormore individuals are recognized within the image(s), or an indicationthat no individuals were recognized. When one or more individuals arerecognized, the smart TV 410, the smartphone 420, the tablet device 430,and the IoT device 440 can be implemented to compare the faces, orside-profiles, of the individuals with one or more images, or photos,associated with the user's 401 stored user profile. In someimplementations, the smart TV 410, the smartphone 420, the tablet device430, and the IoT device 440 may obtain further information about thereceived visual signals, which may be used to determine a relativedistance from the respective device to the recognized individuals basedon the captured images.

In some implementations, the smart TV 410, the smartphone 420, thetablet device 430, and the IoT device 440 may attempt to recognize theidentified individuals and determine relative distances to one or moreof the recognized individuals. For example, the smartphone 420 canemploy one or more face identification or facial recognition techniquesto identify and recognize individuals from one or more captured images,as well as the relative distance to the identified individual. In someimplementations, the smart TV 410, the smartphone 420, the tablet device430, and the IoT device 440 may instead transmit one or more capturedimages to a remote computing device, which then attempts to identify andrecognize one or more individuals in the captured images. The remotecomputing device may then provide to the smart TV 410, the smartphone420, the tablet device 430, or the IoT device 440 an indication of oneor more individuals recognized within the image(s) or an indication thatno individuals were recognized.

Upon recognizing the user's 401 face based on the received visualsignals, the recognizing device can be implemented to identify itself tothe other devices. In some implementations, the other devices candeactivate cameras, and return to standby operation. In some otherimplementations, the other devices can keep the camera activated untilthey receive instructions from the smart TV 410, or another device inthe communication network, to deactivate the camera and return tostandby operation. The recognizing device can present the mediaprogramming-related notification to the user 401.

In some other implementations, the smart TV 410 can instruct thesmartphone 420, the tablet device 430, and the IoT device 440 toactivate one or more sensors to attempt to detect the user's presence.Similar to the audio and facial recognition techniques described above,the smartphone 420, the tablet device 430, and the IoT device 440 canutilize one or more sensors to determine which device is nearest to theuser 401, and that device can be implemented to provide the mediaprogramming-related notification.

FIG. 5 shows an example flowchart 500 for intelligent routing ofnotifications related to media programming. At block 501, a user profilecan be established on the smart TV. The smart TV can include at leastone of a microphone, a camera, and one or more other sensors, such as anambient light sensor, detectors, biosensor, sensory receptors, imagesensors, microelectromechanical systems (MEMS) sensors, etc. Similar tothe description related to FIG. 3, the user profile can be establishedvia user login, such as through a username and password combination on alogin interface. For example, the user can login through the smart TV'sown interface, such as be entering their Samsung.com or LG.com accountinformation, or the user can login through one or more commercialapplications, such as Facebook, Google's Gmail, etc. Alternatively, theuser profile can be established based on the user's fingerprints. Thesmart TV can be implemented to keep the user logged in until the userlogs out, or until another user logs in. The user profile can include avariety of information about the user's TV viewing habits, such as theuser's interests, favorite shows, favorite channels, favorite genres,popular viewing times, popular viewing days, etc.

Additionally, the user's profile can include the user's face and theuser's voice. For example, the smart TV can be implemented to store oneor more images associated with the user's face. The images may becaptured by the smart TV camera, or may be received from another source,such as through the login information, or one or more commercialapplications, such as Facebook, Gmail, etc. In addition, the smart TVcan be implemented to store audio information associated with the user'svoice. The audio information may be captured by the smart TV microphone,or may be received from another source, such as from an IoT hub, orvirtual assistant device, such as Amazon Alexa®, Google Home®, etc. Insome implementations, the user profile, including images associated withthe user's face and audio information associated with the user's voice,can be stored locally in memory at the smart TV, whereas in some otherimplementations, the information associated with the user can be storedremotely, such as on a server, or in the cloud, and accessible by thesmart TV.

At block 502, based on the user's profile, the smart TV can recognizethat scheduled media programming is of interest to the user. The mediaprogramming may be selected in advance by the user, or can be selectedby the smart TV based on the user's profile. The smart TV can beimplemented to change the channel to the media programming at thescheduled time. In some implementations, the smart TV can be implementedto turn itself on, and substantially simultaneously, to turn the channelto the media programming within a particular window of the scheduledtime.

When the scheduled time arrives, at decision block 503, the smart TVdetects if the user is in the vicinity of the smart TV. In the exampleimplementation described in FIG. 5, the smart TV can employ themicrophone, camera, or other sensor to detect the user's presence. Forexample, the camera can be used to detect the user's face, by capturingone or more images and comparing the captured images to images storedwith the user profile. Alternatively, the microphone can be used todetect audio signals, and can compare the detected audio signals withstored audio information associated with the user's voice.

In some implementations, the smart TV may detect that the user is aminor, or more specifically, a child, and that no adults are detected inthe vicinity. Based on the detection, and after accessing the minoruser's profile, the smart TV can be implemented to turn on parentalcontrols to restrict the media programming accessible to the minor. Theparental control settings can be predefined or programmed in advance,such as by an adult, to restrict access to certain channels, or certainmedia programming, or can be dynamically determined by artificialintelligence or machine learning algorithms operating at the smart TV.For example, the parental control settings may be implemented torestrict access to channels displaying adult content, such as HBO, or tomedia programming having adult content restrictions contained therein,such as Game of Thrones. In another example, the smart TV can beimplemented to dynamically restrict access to media programming when thesmart TV detects audible cursewords. Conversely, if the smart TV alsodetects an adult in the vicinity, as well as the minor, the smart TV canbe implemented to display the media programming as intended. If the useris detected, at block 504, the smart TV presents the media programming.If the user is not detected, at block 505, the smart TV can beimplemented to send a detection instruction to a particular device. Forexample, the smart TV can send a detection instruction to the user'sdefault, programmed, or preferred electronic device. Upon receiving thedetection instruction, the electronic device can be implemented toenable one or more of its microphone, camera (if applicable), or sensorsto detect the user's presence in the vicinity of the electronic device.If the user is detected, the electronic device can notify the smart TVof the positive detection, and can present, or otherwise deliver, amedia programming-related notification to the user. If the user is notdetected, the electronic device can notify the smart TV of the lack ofdetection.

Alternatively, at block 506, the smart TV can be implemented to senddetection instructions to a plurality of electronic devices, such as thesmartphone 420, the tablet device 430, and the IoT device 440, asdescribed with respect to FIG. 4. Upon receiving the detectioninstructions, the plurality of electronic devices can be implemented toenable one or more of each respective device's microphone, camera (ifapplicable), or sensors to detect the user's presence in the vicinity ofthe electronic device. In some implementations, multiple individuals maybe detected by the plurality of electronic devices, or by the smart TVitself. The detection techniques employed by the electronic devices caninclude recognition techniques, including voice recognition, facialrecognition, object recognition, etc., for identifying the correctindividual. Suitable voice, facial or object recognition techniques mayemploy neural networks, including deep neural networks, HMM, spectral orcepstral analysis techniques, dynamic time warping techniques, inaddition to other techniques described in this disclosure, as well asother similar suitable techniques, etc. For example, detected andreceived audio signals may be provided to, and processed by, a voicerecognition technique or software algorithm, in an attempt to recognizeone or more voices recorded within the audio signals. Additionally,detected and received video signals may be provided to, and processedby, a facial recognition technique or software application to analyze inan attempt to identify one or more faces. Indications of the recognizedvoices or faces may be received by the plurality of electronic devicesfrom such recognition techniques. For example, the indications mayinclude a name, a user profile ID, or some other identifier recognizableby the plurality of electronic devices.

If the user is detected, at block 507, the detecting electronic devicecan present, or otherwise deliver, one or more media programming-relatednotifications to the user (block 508). The electronic device can beimplemented to send a single notification, several notifications, orpersistent notifications until the user snoozes or dismisses theelectronic device, or until the user is detected in the vicinity of thesmart TV. In some implementations, the detecting electronic device cannotify the smart TV, the remainder of the plurality of electronicdevices, or both, of the positive detection, in addition to presentingthe media programming-related notification to the user. Based on thedetection notification from the detecting device, the smart TV caninstruct the remainder of the plurality of electronic devices to disabletheir respective microphones, cameras and sensors. If the user is notdetected, at block 507, the electronic device(s) can notify the smartTV, the remainder of the plurality of electronic devices, or both, ofthe lack of detection (block 509). In such an implementation, the smartTV may reissue further detection instructions to the plurality ofelectronic devices.

FIG. 6 shows an example method 600 for intelligent routing ofnotifications related to media programming. The operations of the method600 may be implemented by the smart TV 110, 210 and 410 depicted anddescribed in FIGS. 1, 2 and 4, or its components as describedthroughout. Additionally, or alternatively, the operations of the method600 also may be implemented by one or more of the smartphone 120, 220and 420, the tablet device 130, 230 and 430, or the IoT device 140, 240and 440 (collectively, “the connected devices”), depicted and describedin FIGS. 1, 2 and 4, or components of these connected devices asdescribed throughout.

In some implementations, the described smart TVs 110, 210 and 410, orany of the connected devices, may execute a set of codes to control thefunctional elements of the respective device, or of one or more otherdevices, to perform the functions described in FIG. 6. Additionally, oralternatively, the described smart TVs 110, 210 and 410, or any of theconnected devices, may perform aspects of the functions described inFIG. 6 using special-purpose hardware. In some implementations, thedescribed smart TVs 110, 210 and 410, can be paired with one or more ofthe connected devices.

At block 602, an indication of upcoming media programming can bereceived. The indication may be received by the smart TV 110, 210 and410. In some implementations, the indication may be received by anotherone of the connected devices. The indication may be a media programmingreminder, previously input by a user at the smart TV 110, 210 and 410.Alternatively, the indication may be a scheduled showing of a particulartype of media programming, where the user previously expressed interest.For example, if the user has previously watched episodes one, two andthree of a TV series, the indication may include information related toepisodes four and five, etc., of the same TV series. Moreover, one ormore software applications operating at the smart TV 110, 210 and 410may identify media programming that the user might find desirable, basedon the user's TV viewing habits, or a user profile associated with theuser. For example, using artificial intelligence or machine learning,the smart TV 110, 210 and 410 may predict that the user will beinterested in a history show depicting the Vietnam War, based on theuser's previous TV viewing interest in World War II history shows. Insome implementations, the upcoming media programming may be scheduledfor immediate presentation, while in some other implementations, theupcoming media programming may be scheduled for future presentation,such as later that day, later that week, later that month, etc.

At block 604, one or more devices having at least one of a microphone ora camera can be identified. The smart TV 110, 210 and 410 can beimplemented to identify one or more devices, such as one or more of theconnected devices, which include a microphone, a camera, or both. Forexample, with relation to the connected environment in FIG. 2, the smartTV 210 can communicate with the smartphone 220, the tablet device 230and the IoT device 240, and can identify that all three connecteddevices include microphones, as well as speakers, but only thesmartphone 220 and the tablet device 230 include cameras. In someimplementations, the smart TV 110, 210 and 410 may identify anothersmart TV device. In such implementations, the other smart TV device canbe configured to play the media programming on its own displayinterface.

At block 606, at least one identified device can be instructed to detectaudio signals using the microphone, or visual signals using the camera.The smart TV 110, 210 and 410 can be implemented to instruct at leastone identified device to commence the detection of audio signals via themicrophone, or visual signals via the camera. The connected devices canbe instructed to detect for audio signals using the microphone, or todetect for visual signals using the camera.

The smart TV 110, 210 and 410 can be implemented to request that each ofthe connected devices, including the smart TV 110, 210 and 410 itself,or another smart TV, activate a microphone and begin listening for theuser's voice. If the user's voice is recognized near one of theconnected devices, or the smart TV itself, the smart TV 110, 210 and 410may request only that device to remain activated. Additionally, thesmart TV 110, 210 and 410 can be implemented to request that each of theconnected devices, including the smart TV 110, 210 and 410, activate acamera and begin capturing images to try to optically locate the user,or alternatively, scanning for the user's face. The smart TV 110, 210and 410 or the connected devices may determine whether the user isidentified in any of the captured images or face scans, and if so,request only that device in the closest proximity to the user to remainactivated.

In some implementations, one or more of the connected devices, includingthe smart TV 110, 210 and 410, can detect distances, including relativedistances, to the detected audio or visual signals.

At block 608, at least one device can be selected, based on the detectedaudio signal or detected visual signal. The smart TV 110, 210 and 410can be implemented to select at least one device, based on the detectedaudio signal or visual signal. One or more of the connected devices canbe selected, in addition to another smart TV, based on the audio orvisual signals detected by the respective device. In someimplementations, one or more of the connected devices can be selected,based on the audio or visual signals detected by one of the otherconnected devices.

In some implementations, the device may be selected based on thestrength of the audio signal detected, the amplitude of the audio signaldetected, radio signal-based detection, or the SNR of the audio signaldetected. In some other implementations, the device may be selectedbased on the clarity of the visual signal detected, the depth of thevisual signal detected, or the accuracy of the visual signal detected.In some implementations, the device may be selected based on thedetermined distance to the audio or visual signal, thereby providing anadditional metric by which to select a device.

At block 610, instructions can be provided to the selected device tooutput a notification related to the upcoming media programming. Thesmart TV 110, 210 and 410 can be implemented to provide one or moreinstructions to the selected device, or devices, to output anotification related to the upcoming media programming. While the smartTV 110, 210 and 410 may be connected to each of the connected devices,rather than outputting a notification from each of these connecteddevices, as well as the smart TV itself, the smart TV 110, 210 and 410may instead attempt to determine a subset, or a single device, of theconnected devices to output the notification. Once instructed, any one,or more, of the connected devices, including the smart TV 110, 210 and410, can be implemented to output a media programming-relatednotification. The media programming-related notification can be an audionotification (such as a verbal reminder, an announcement, an alert, analarm, ringing, or sounds associated with the media programming, forexample “This is Saturday Night Live,” etc.), a textual notification(such as a pop up message box, an email, a text message, a Way2SMSmessage, flashing letters or words, etc.), or a visual notification(such as images, video clips, or flashing lights, etc.) aimed at gainingthe user's attention, and informing the user that media programming ofinterest may be presented on the smart TV 110, 210 and 410.

While the example method 600 in FIG. 6 includes five discrete blocks, aperson having ordinary skill in the art will readily recognize thatother blocks can be inserted between the depicted blocks. Additionally,other blocks may be performed before or after certain depicted blocks.

FIG. 7 shows an example training data table 700 used for a neuralnetwork model. As previously mentioned, a neural network model can beimplemented to determine a favorite channel, favorite channels, orfavorite media programming at a particular time for one or more users.Using a threshold time duration as a basis for determining a user'sfavorite channel, the neural network model can dynamically train itselfto learn a user's favorite channels, and present those channels in afavorite channel list to the user throughout the day.

The example training data table 700 includes columns for time of day(i.e., 7 or 8 am), day of the week (i.e., day 1) and channels (i.e.,channels 1-4). In this example, a user has shown interest in fourchannels historically between the hours of 7-9 am. A “1” in the channelscolumns indicates that based on the user's logged viewing history, theuser has viewed that channel for at least a threshold time duration, forexample 15 minutes. A “0” in the channels columns indicates that basedon the user's logged viewing history, the user did not view thatparticular channel for the required threshold time duration.

FIG. 8 shows an example neural network model 800 applying the trainingdata table of FIG. 7. As depicted, the neural network model 800 includesa two-unit input layer 810, which includes the variables time and day, afour-unit output layer 820, which includes the four channels, and athree-unit neural network model hidden layer 830. Before data is fedinto the neural network model, one or more pre-processing stages mayoccur. For example, the historical time duration for every channelwatched in a particular hour can be extracted. Additionally, any channelwhose viewing time duration is lower than the designated threshold isfiltered out.

The input layer 810 data is then fed into the neural network model 800,and its features include the current time rounded off to the lowesthour, for example, time=7 am, time=8 am, etc., and the day of the week,for example, Monday=Day 1, Tuesday=Day 2, etc. The output layer 820 datais also fed into the neural network model, and its features include thenumber of subscribed channels, as well as the probability of a channelbeing viewed at a particular time, for example, 7-8 am or 8-9 am, etc.

The hidden layer 830 provides an extra computation layer in the neuralnetwork model 800. In some implementations, this layer is termed hiddenbecause an operating user does not need to know about the specificfunctionality of the layer in order to utilize the neural network model800. Typically, neural network models utilize a single hidden layer 830,and the number of units in the hidden layer 830 are equal to: (number ofunits in output layer+number of units in input layer)/2. A person havingordinary skill in the art will readily recognize that the number ofunits in a hidden layer may vary from the equation described above,based in part on the complexity of model.

In operation, a smart TV, such as smart TV 110, 210 and 410 described inFIGS. 1, 2 and 4, can provide the inputs as defined in the input layer810 to run this example neural network model 800. Based on the inputsand the weights, the neural network model 800 will calculate the valuesin the output layer 820 as the probability for the user watching aparticular channel on a specific time and day. The smart TV may presentthe channels that exceed a certain probability threshold to the user ina favorite channel list.

The weights for the neural network model 800, such as weight 1 andweight 2, can be trained using one or more algorithms, with one suchexample being a backpropagation algorithm. The weights, such as weight 1representing a 3×3 matrix, and weight 2 representing a 4×4 matrix, maybe randomly initialized, before the backpropagation algorithm begins aniterative process to correct the weights until an error is minimized.

An example iterative backpropagation algorithm process can includeexample equations as follows:Input_Layer=[Time,Day]  Equation (1)Output_for_Hidden_Layer=activation_function([1,Input_Layer]*weights_1),where “1”added to the Input_Layer can be implemented as the bias term.Or in other words, the “1” in [1,Input_Layer] is the biasterm.  Equation (3)Output_for_Output_Layer=activation_function([1,Output_for_hidden_layer]*weights_2)  Equation(3)Error=Output_for_Output_Layer−Actual Output  Equation (4)

While training, the motive is to minimize Equation (4) by changing theweights iteratively. The weights may be representative of the minimumerror across all training data. The activation function is this exampleis a sigmoid function, however, other functions like Rectified LinearUnit (ReLU) and hyperbolic tangent function (tanh) also can be used.

After applying the example algorithm described above, the final weights:

TABLE 1 Weight 1 (3 × 3 matrix) −8.0183 1.084814 −0.08984 −9.4961.303474 −0.10591 −7.37099 1.014308 −0.07249

TABLE 2 Weight 2 (4 × 4 matrix) −1.19286 0.345207 0.388504 0.3164872.344857 −1.03469 −1.19042 −0.95524 0.182997 −0.11605 −0.1285 −0.10354−1.0106 1.040616 1.199431 0.949738

In this example, the weight data for weight 1 and weight 2 was obtainedby keeping the number of maximum iterations to 50 on an inbuiltoptimizer “fmincg” by GNU Octave. Additionally, no further optimizationalgorithms like regularization or hyperparameter tuning were applied.Finally, a person having ordinary skill in the art will readilyrecognize that the neural network model 800 framework, as well as theweights and matrices are provided simply as examples, and that otherframeworks, weights and matrix constructions can be considered,depending on the user inputs, as well as other design constraints.

FIG. 9 shows an example neural network model 900 outputting theprobabilities of a user viewing a channel at 7 am based on the trainingdata table of FIG. 7 and the Equations described in FIG. 8. Based on thetraining data table of FIG. 7 and the Equations described in FIG. 8,after testing, the neural network model 900 output the probabilities ofviewing. In particular, the neural network model 900 output theprobabilities of the user watching one of channels 1-4 at 7 am on aMonday. The determined probability of channel 1 is 0.313539, channel 2is 0.751305, channel 3 is 0.511852, and channel 4 is 0.557754. As such,based on the historical times and historical dates that the user watchedTV, the neural network model has determined that channel 2 has thehighest probability of being viewed at 7 am on a Monday.

The smart TV, such as smart TV 110, 210 and 410 described in FIGS. 1, 2and 4, can be implemented to receive the output probabilities and topresent the channels 1-4 to the user in a favorite channel list based onthe probabilities. In this depicted example, the favorite channel listwill be displayed, or otherwise presented to the user in the followingorder: channel 2, channel 4, channel 3 and channel 1. The favoritechannel list can be stored in memory at the smart TV, or in a softwareapplication associated with the smart TV, and may include the mediaprogramming title, media programming episode, character or plotinformation, or other such information that allows the user to quicklyselect the desired channel. In some implementations, the favoritechannel list can exceed four channels, or be less than four channelsdepending on the number of channels subscribed to and viewed by theuser.

FIG. 10 shows an example neural network model 1000 outputting theprobabilities of a user viewing a channel at 8 am based on the trainingdata table of FIG. 7 and the Equations described in FIG. 8. Based on thetraining data table of FIG. 7 and the Equations described in FIG. 8,after testing, the neural network model 1000 output the probabilities ofviewing. In particular, the neural network model 1000 output theprobabilities of the user watching one of channels 1-4 at 8 am on aMonday. The determined probability of channel 1 is 0.379259, channel 2is 0.555724, channel 3 is 0.487747, and channel 4 is 0.753402. As such,based on the historical times and historical dates that the user watchedTV, the neural network model has determined that channel 4 has thehighest probability of being viewed at 8 am on a Monday.

The smart TV, such as smart TV 110, 210 and 410 described in FIGS. 1, 2and 4, can be implemented to receive the output probabilities and topresent the channels 1-4 to the user in a favorite channel list based onthe probabilities. In this depicted example, the favorite channel listwill be displayed, or otherwise presented to the user in the followingorder: channel 4, channel 2, channel 3 and channel 1. Again, thefavorite channel list can be stored in memory at the smart TV, or in asoftware application associated with the smart TV, and may include themedia programming title, media programming episode, character or plotinformation, or other such information that allows the user to quicklyselect the desired channel.

FIG. 11 shows an example method 1100 for presenting media programming onan electronic device. The operations of the method 1100 may beimplemented by any suitable electronic device, including the smart TV110, 210 and 410 depicted and described in FIGS. 1, 2 and 4, or itscomponents as described throughout. Additionally, or alternatively, theoperations of the method 1100 also may be implemented by one or more ofthe smartphone 120, 220 and 420, the tablet device 130, 230 and 430, orthe IoT device 140, 240 and 440 (collectively, “the connected devices”),depicted and described in FIGS. 1, 2 and 4, or components of theseconnected devices as described throughout.

In some implementations, the described smart TV 110, 210 and 410, or anyof the connected devices, may execute a set of codes to control thefunctional elements of the respective device, or of one or more otherdevices, to perform the functions described in FIG. 11. Additionally, oralternatively, the described smart TVs 110, 210 and 410, or any of theconnected devices, may perform aspects of the functions described inFIG. 11 using special-purpose hardware. In some implementations, thedescribed smart TVs 110, 210 and 410, can be paired with one or more ofthe connected devices.

At block 1102, TV channel viewing data can be obtained. The TV channelviewing data may be obtained by the smart TV 110, 210 and 410. Forexample, the smart TV 110, 210 and 410 may retrieve the TV channelviewing data from memory, the cloud or other storage, or may receive theTV channel viewing data from a software application or anotherelectronic device. In some implementations, the TV channel viewing datamay be obtained by another one of the connected devices. The TV channelviewing data can include historical data related to when one or morechannels or media programming was viewed, or displayed, on the smart TVor on any one of the connected devices. The historical data can includeone or more of a historical time that a channel or media programming wasviewed, a historical date that a channel or media programming wasviewed, a historical day of the week that a channel or media programmingwas viewed, a historical month or year that a channel or mediaprogramming was viewed, etc. For example, the TV channel viewing datamay include historical data such as channel 1 was viewed at 1:32 pm for25 minutes on Friday, Jun. 15, 2018 on the smart TV. In another example,the TV channel viewing data may include historical data such as channel2 was viewed at 2 pm for 35 minutes on Friday, Jun. 15, 2018 on thesmart TV. In yet another example, the TV channel viewing data mayinclude historical data such as media programming SportsCenter wasviewed at 10 am for 50 minutes on Saturday, Jun. 16, 2018 on the smartTV.

In some implementations, that TV channel viewing data can includehistorical volume data and historical brightness data. In someimplementations, the volume or the brightness of the smart TV 110, 210and 410 can be automatically adjusted based on at least one of thehistorical time and the historical date. For example, if the historicalvolume data indicates that a particular user turns the volume to 15% ofthe maximum smart TV volume at 11 pm, the smart TV 110, 210 and 410 canbe implemented to automatically adjust the volume to 15% of the maximumvolume starting at 11 pm. Similarly, if the historical brightness dataindicates that a particular user increases the smart TV's brightnesswhile watching sporting events, the smart TV 110, 210 and 410 can beimplemented to automatically increase the brightness when sporting eventmedia programming is being viewed.

In some implementations, the TV channel viewing data can be associatedwith a user profile. The user profile can include information related tothe user, in addition to TV channel viewing data. For example, the userprofile may indicate that an elderly adult user prefers the smart TVvolume to be around 50% of the maximum smart TV volume, and thebrightness settings to be around 60% of the maximum smart TV brightness.In some implementations, such as those described in FIGS. 2-6, upondetecting the presence of a user, the smart TV, or other electronicdevice, can access user profile data associated with a user, and basedon that user profile data, can adjust the volume or brightness of thesmart TV, or other electronic device. In some implementations, if aminor child is detected, the smart TV, or other electronic device, canaccess the minor child's user profile, and based on that user profiledata, can restrict access to one or more channels or media programmingon the smart TV, or other electronic device.

The example training table data 700 depicted in FIG. 7 can include theTV channel viewing data. In other words, one or more users' loggedviewing history, which can be organized in the training table data 700,can include the TV channel viewing data.

At block 1104, one or more of a current time and a current date can beobtained. The current time or the current date, or both, can be obtainedby the smart TV 110, 210 and 410. For example, the smart TV 110, 210 and410 may retrieve the current time and current date from memory, thecloud or other storage, or may receive the current time and current datefrom a software application, media programming application, or anotherelectronic device. In some implementations, the current time and currentdate may be obtained by another one of the connected devices.

At block 1106, the TV channel viewing data can be processed. The TVchannel viewing data can be processed by one or more components of thesmart TV 110, 210 and 410, the smart TV 110, 210 and 410 itself, or byone of the connected devices. In some implementations, the neuralnetwork model 800 depicted in FIG. 8 can be employed to process the TVchannel viewing data. Processing the TV channel viewing data can includedetermining a probability that one or more channels or media programmingis likely to be viewed on the smart TV based on at least one of thecurrent time and the current date. For example, the neural network model800 can be implemented to analyze a user's historical TV channel viewingdata and to determine the probability of which channels or mediaprogramming the user is likely to watch at the present time, or at afuture time.

In some implementations, employing the neural network model can include,analyzing the user's logged viewing history for each of the historicaltimes and historical dates, and determining a duration that each of oneor more channels, or media programming, was viewed on the smart TV. Thedetermined duration, or determined time duration, can be compared to athreshold time duration. The threshold time duration can be set by theneural network model itself, or can be input by a user. For example, thethreshold time duration may be 10 minutes, 15 minutes, 20 minutes, 25minutes, 30 minutes, 45 minutes, 1 hour, etc. The neural network modelcan be implemented to filter out, or remove, one or more channels, ormedia programming, that were viewed on the smart TV below the thresholdtime duration from its processing pool. For example, assuming thethreshold time duration is 30 minutes and turning back to the examplesdescribed with respect to block 1102, the TV channel viewing dataassociated with channel 1 will be filtered out by the neural networkmodel because the duration it was viewed, 25 minutes, is less than thethreshold time duration. The TV channel viewing data associated withchannel 2 and the media programming SportsCenter will remain in theprocessing pool for the neural network model, as they were watched for35 minutes and 50 minutes, respectively, which are greater than thethreshold time duration.

At block 1108, a favorite channel list can be presented. The favoritechannel list can be presented on the smart TV 110, 210 and 410, or onone of the connected devices. The favorite channel list can include oneor more channels that the user is likely to watch at the present time,or at a future time. Alternatively, the favorite channel list caninclude one or more media programming selections that the user is likelyto watch at the present time, or at a future time. The favorite channelslist can be based on the determined probability of the one or morechannels being viewed. For example, the neural network model 800 canoutput probabilities of a particular user watching one or more channels,or media programming, at a particular time, which can be received by thesmart TV 110, 210 and 410 and presented on the smart TV displayinterface. In some implementations, the favorite channels list caninclude the one or more channels in order based on the determinedprobability. For example, if the neural network model determines thatSportsCenter has the highest probability of being viewed at the currenttime, SportsCenter will be ordered at the top of the favorite channelslist.

While the example method 1100 in FIG. 11 includes four discrete blocks,a person having ordinary skill in the art will readily recognize thatother blocks can be inserted between the depicted blocks. Additionally,other blocks may be performed before or after certain depicted blocks.

FIG. 12 shows an example electronic device 1200 for intelligent routingof notifications related to media programming. The example electronicdevice 1200 includes a processor 1210, memory 1220, a display, userinput/output devices 1240, a microphone 1242, a speaker 1244, and acamera 1246 in communication with each other via bus 1250. In addition,the electronic device 1200 includes three wireless transceivers 1212,1222, 1232 and associated antennas 1214, 1224, 1234. The processor 1210is configured to execute processor-executable program code stored in thememory 1220 to execute one or more methods for intelligent routing ofnotification of incoming voice communication requests according to thisdisclosure.

In this example, the electronic device 1200 is a smart TV, such as thesmart TVs 110, 210 and 410 depicted in FIGS. 1, 2 and 4. However, theelectronic device 1200 may be any electronic device with communicationcapabilities, and configured to receive and handle audio, oraudio/visual communications over a communications network. Communicationbetween the electronic device 1200 and other devices may be accomplishedusing any suitable networking protocol. For example, one suitablenetworking protocol may include the Internet Protocol (“IP”),Transmission Control Protocol (“TCP”), User Datagram Protocol (“UDP”),or combinations thereof, such as TCP/IP or UDP/IP. Example electronic orcomputing devices according to this disclosure may be any devicedescribed throughout this disclosure, and not limited to the followingexamples: smartphones, laptop computers, desktop computers, tablets,phablets, satellite phones, cellular phones, dedicated videoconferencing equipment, IOT hubs, virtual assistant devices, wearabledevices, in-vehicle entertainment or communication systems, homesecurity systems, or any device having an interface to a communicationsnetwork and suitable input and output devices.

In this example, the electronic device 1200 is equipped with a wirelesstransceiver 1212 and antenna 1214 configured to communicate with acellular network using any suitable communications technology asdiscussed above. In addition to the wireless transceiver 1212 andantenna 1214, the electronic device 1200 also includes additionalwireless transceivers 1222, 1232 and antennas 1224, 1234 configured for,as an example, Bluetooth communications and Wi-Fi communications,respectively. Thus, the electronic device 1200 is able to connect to oneor more cellular devices, Bluetooth devices, as well as Wi-Fi devices,including Wi-Fi APs.

The electronic device 1200 also includes a display 1230 and userinput/output devices 1240. Suitable user input devices include remotecontrols, touch-sensitive surfaces, such as touch screens, buttons,knobs, rocker switches, directional pads, mice, keyboards, microphones,etc. Suitable output devices include speakers, display devices, brailleoutput devices, haptic output devices, etc.

FIG. 13 shows an example electronic device 1300 that may be connected tothe electronic device 1200 shown in FIG. 12. The electronic device 1300may include a wide variety of electronic devices, including any of thosediscussed above, such as and not limited to the smart TV 110, 210 and410, the smartphone 120, 220 and 420, the tablet device 130, 230 and430, or the IoT device 140, 240 and 440 depicted in FIGS. 1, 2 and 4,respectively. The electronic device 1300 can include a processor 1310, amemory 1320, at least one transceiver 1330 (i.e., a transmitter and areceiver), and at least one antenna 1340. The electronic device 1300also can include one or more sensors 1350, a display 1360, a userinterface (UI) 1370 (such as a keypad, touchscreen, voice or gestureinterface), a microphone 1380 (representative of a microphone and aspeaker) and a camera 1390. Although not depicted, the electronic device1300 can include one or more network interfaces, such as a wirelessnetwork interface (like a cellular interface, a WLAN interface, aBluetooth® interface, a WiMAX interface, a ZigBee® interface, a WirelessUSB interface, etc.) or a wired network interface (like as a powerlinecommunication interface, an Ethernet interface, etc.). In someimplementations, the electronic device 1300 may support multiple networkinterfaces, each of which may be configured to couple the electronicdevice 1300 to a different communication network. Each of the components(or “modules”) described with reference to FIG. 13 can communicate withone another, directly or indirectly, over at least one bus 1305. The bus1305 may include a power bus, a control signal bus, a status signal bus,a data bus, etc. Example buses 1305 can include PCI, ISA, PCI-Express,HyperTransport®, InfiniBand®, NuBus, AHB, AXI, etc.

The processor 1310 may be a general-purpose single- or multi-chipmicroprocessor (such as an Advanced RISC (Reduced Instruction SetComputer) Machine (ARM)), a special purpose microprocessor (such as adigital signal processor (DSP)), a microcontroller, a programmable gatearray (such as a field programmable gate array (FPGA)), a shiftregister, etc. The processor 1310 may be referred to as a centralprocessing unit (CPU). Although just a single processor 1310 is depictedin the electronic device 1300 of FIG. 13, in alternativeimplementations, a combination of processors (such as an ARM and DSP)including multiple processors, multiple cores, multiple nodes, orimplementing multi-threading, etc., can be used.

The electronic device 1300 also includes memory 1320 in electroniccommunication with the processor 1310 (i.e., the processor can readinformation from and write information to the memory 1320). Memory 1320can be deemed to be in electronic communication with the processor 1310if the processor 1310 can read information from or write information tothe memory 1320. The memory 1320 may be any electronic component capableof storing electronic information. The memory 1320 may be configured asrandom-access memory (RAM), read-only memory (ROM), non-volatilerandom-access memory (NVRAM), magnetic disk storage media, opticalstorage media, flash memory devices in RAM, on-board memory includedwith the processor, erasable programmable read-only memory (EPROM),electrically erasable programmable read-only memory (EEPROM), registersand so forth, including combinations thereof.

Data 1322 and instructions 1324 may be stored in the memory 1320. Theinstructions may include one or more programs, routines, sub-routines,functions, procedures, code, etc. The instructions may include a singlecomputer-readable statement or many computer-readable statements. Theinstructions 1324 may be executable by the processor 1310 to implementthe methods disclosed herein. Executing the instructions 1324 mayinvolve the use of the data 1322 that is stored in the memory 1320. Whenthe processor 1310 executes the instructions 1324, various portions ofthe instructions 1314 may be loaded onto the processor 1310, and variouspieces of data 1312 may be loaded onto the processor 1310.

The memory 1320 also can store processor- or computer-executablesoftware code containing instructions that, when executed, cause theprocessor 1310 to perform various functions described herein for opticalcommunication, including reception of a signal, and generation andtransmission of an appropriate response signal. The processor 1310 alsocan be implemented to decode received signals and encode responsesignals.

The processor 1310 processes information received through thetransceiver 1330 as well as information to be sent to the transceiver1330 for transmission through the antenna 1340. Additionally, theprocessor 1310 can process information received through one or moresensors 1350 as well as information to be presented by the display 1360.

In some implementations, the transceiver 1330 can be implemented as botha transmitter and a receiver, and can modulate data and provide themodulated data to the antenna 1340 for transmission, as well as todemodulate data received from the antenna 1340. In some suchimplementations, the transceiver 1330 can be implemented as at least oneRF transmitter and at least one separate RF receiver. The transceiver1330 may communicate bi-directionally, via one or more antennas, wired,or wireless communication links as described above. For example, thetransceiver 1330 may represent a wireless transceiver and maycommunicate bi-directionally with another wireless transceiver, such asa wireless transceiver associated with the electronic device 1200depicted in FIG. 12. The transceiver 1330 also may include a modem tomodulate the packets and provide the modulated packets to the antennasfor transmission, and to demodulate packets received from the antennas.

The display 1360 can be implemented from any suitable displaytechnology. For example, the display 1360 can be implemented from aliquid crystal display (LCD), an e-ink display, a digital microshutter(DMS) display, or an interferometric modulator (IMOD) display.Additionally, the display 1360 can be implemented as a flat-paneldisplay, such as plasma, electroluminescent (EL) displays, organic lightemitting diode (OLED) display, super twisted nematic (STN) display, orthin-film transistor (TFT) LCD, or a non-flat-panel display, such as acathode ray tube (CRT) or other tube device. The microphone 1380 and thecamera 1390 allow the electronic device 1300 to be suitable for engagingin voice and video communications. And while the depicted electronicdevice 1300 includes the microphone 1380 and camera 1390, other exampleelectronic devices may lack a camera 1390, while having a microphone1380 and speaker functionality, such as the IoT device 140, 240 and 440depicted in FIGS. 1, 2 and 4.

As used herein, a phrase referring to “at least one of” a list of itemsrefers to any combination of those items, including single members. Asan example, “at least one of: a, b, or c” is intended to cover: a, b, c,a-b, a-c, b-c, and a-b-c.

The various illustrative logics, logical blocks, modules, circuits andalgorithm processes described in connection with the implementationsdisclosed herein may be implemented as electronic hardware, computersoftware, or combinations of both. The interchangeability of hardwareand software has been described generally, in terms of functionality,and illustrated in the various illustrative components, blocks, modules,circuits and processes described throughout. Whether such functionalityis implemented in hardware or software depends upon the particularapplication and design constraints imposed on the overall system.

The hardware and data processing apparatus used to implement the variousillustrative logics, logical blocks, modules and circuits described inconnection with the aspects disclosed herein may be implemented orperformed with a general purpose single- or multi-chip processor, adigital signal processor (DSP), an application specific integratedcircuit (ASIC), a field programmable gate array (FPGA) or otherprogrammable logic device, discrete gate or transistor logic, discretehardware components, or any combination thereof designed to perform thefunctions described herein. A general-purpose processor may be amicroprocessor, or, any conventional processor, controller,microcontroller, or state machine. A processor also may be implementedas a combination of computing devices, such as a combination of a DSPand a microprocessor, a plurality of microprocessors, one or moremicroprocessors in conjunction with a DSP core, or any other suchconfiguration. In some implementations, particular processes and methodsmay be performed by circuitry that is specific to a given function.

In one or more aspects, the functions described may be implemented inhardware, digital electronic circuitry, computer software, firmware,including the structures disclosed in this specification and theirstructural equivalents thereof, or in any combination thereof.Implementations of the subject matter described in this specificationalso can be implemented as one or more computer programs, i.e., one ormore modules of computer program instructions, encoded on a computerstorage media for execution by, or to control the operation of, dataprocessing apparatus.

If implemented in software, the functions may be stored on ortransmitted over as one or more instructions or code on acomputer-readable medium. The processes of a method or algorithmdisclosed herein may be implemented in a processor-executable softwaremodule which may reside on a computer-readable medium. Computer-readablemedia includes both computer storage media and communication mediaincluding any medium that can be enabled to transfer a computer programfrom one place to another. A storage media may be any available mediathat may be accessed by a computer. By way of example, and notlimitation, such computer-readable media may include RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium that may be used to storedesired program code in the form of instructions or data structures andthat may be accessed by a computer. Also, any connection can be properlytermed a computer-readable medium. Disk and disc, as used herein,includes compact disc (CD), laser disc, optical disc, digital versatiledisc (DVD), floppy disk, and Blu-ray disc where disks usually reproducedata magnetically, while discs reproduce data optically with lasers.Combinations of the above should also be included within the scope ofcomputer-readable media. Additionally, the operations of a method oralgorithm may reside as one or any combination or set of codes andinstructions on a machine readable medium and computer-readable medium,which may be incorporated into a computer program product.

Various modifications to the implementations described in thisdisclosure may be readily apparent to those skilled in the art, and thegeneric principles defined herein may be applied to otherimplementations without departing from the spirit or scope of thisdisclosure. Thus, the claims are not intended to be limited to theimplementations shown herein, but are to be accorded the widest scopeconsistent with this disclosure, the principles and the novel featuresdisclosed herein.

Additionally, a person having ordinary skill in the art will readilyappreciate, the terms “upper” and “lower” are sometimes used for ease ofdescribing the figures, and indicate relative positions corresponding tothe orientation of the figure on a properly oriented page, and may notreflect the proper orientation of any device as implemented.

Certain features that are described in this specification in the contextof separate implementations also can be implemented in combination in asingle implementation. Conversely, various features that are describedin the context of a single implementation also can be implemented inmultiple implementations separately or in any suitable subcombination.Moreover, although features may be described as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. Further, the drawings may schematically depict one more exampleprocesses in the form of a flow diagram. However, other operations thatare not depicted can be incorporated in the example processes that areschematically illustrated. For example, one or more additionaloperations can be performed before, after, simultaneously, or betweenany of the illustrated operations. In certain circumstances,multitasking and parallel processing may be advantageous. Moreover, theseparation of various system components in the implementations describedshould not be understood as requiring such separation in allimplementations, and it should be understood that the described programcomponents and systems can generally be integrated together in a singlesoftware product or packaged into multiple software products.Additionally, other implementations are within the scope of thefollowing claims. In some cases, the actions recited in the claims canbe performed in a different order and still achieve desirable results.

What is claimed is:
 1. A method, comprising: receiving, by a smarttelevision (TV), an indication of upcoming media programming, whereinthe upcoming media programming is based on a user profile; identifyingone or more devices in communication with the smart TV, each of the oneor more devices including at least one of a microphone or a camera;instructing at least one identified device to detect audio signals usingits respective microphone, or to detect visual signals using itsrespective camera; selecting at least one device of the one or moredevices based on the detected audio signal or detected visual signal;and providing instructions to the selected device to output anotification related to the upcoming media programming.
 2. The method ofclaim 1, wherein the upcoming media programming is one of a livetelevision program, a recorded television program, a broadcasttelevision program, or an application-provided program.
 3. The method ofclaim 1, wherein selecting the first device based on the detected audiosignal includes recognizing a voice.
 4. The method of claim 3, furthercomprising determining a distance to the recognized voice, and whereinselecting the first device is further based on the determined distance.5. The method of claim 1, wherein selecting the first device based onthe detected visual signals includes recognizing a face.
 6. The methodof claim 5, wherein recognizing the face includes a face recognitiontechnique.
 7. The method of claim 1, further comprising presenting, onthe smart TV, the upcoming media programming in a favorite channel list.8. The method of claim 7, further comprising: obtaining mediaprogramming viewing data, wherein the media programming viewing dataincludes at least one of a historical time and a historical date thatone or more media programs were viewed; obtaining at least one of acurrent time and a current date; processing the media programmingviewing data to determine a probability of the one or more mediaprograms being viewed based on at least one of the current time and thecurrent date; and presenting the favorite channel list based on thedetermined probability of the one or more media programs being viewed.9. The method of claim 8, wherein processing the media programmingviewing data includes employing a neural network model.
 10. The methodof claim 9, wherein employing the neural network model comprises:determining a duration that the one or more media programs were viewedfor each of the at least one of the historical time and the historicaldate; setting a threshold time duration; comparing the determinedduration to the threshold time duration; and filtering out the one ormore media programs viewed below the threshold time duration.
 11. Asmart television (TV), comprising: a network interface; a non-transitorycomputer-readable medium; and a processor in communication with thenetwork interface, and the non-transitory computer-readable medium, andcapable of executing processor-executable program code stored in thenon-transitory computer-readable medium, to cause the smart TV to:receive an indication of upcoming media programming, wherein theupcoming media programming is based on a user profile; identify one ormore devices in communication with the smart TV, each of the one or moredevices including at least one of a microphone or a camera; instruct atleast one identified device to detect audio signals using its respectivemicrophone, or to detect visual signals using its respective camera;select at least one device of the one or more devices based on thedetected audio signal or detected visual signal; and provideinstructions to the selected device to output a notification related tothe upcoming media programming.
 12. The smart TV of claim 11, whereinselecting the first device based on the detected audio signal includesrecognizing a voice.
 13. The smart TV of claim 12, wherein the processoris further capable of executing processor-executable program code to:determine a distance to the recognized voice, and wherein selecting thefirst device is further based on the determined distance.
 14. The smartTV of claim 11, wherein selecting the first device based on the detectedvisual signals includes detecting the presence of a user.
 15. The smartTV of claim 14, wherein detecting the presence of the user includesemploying one or more of a camera, a microphone, or a fingerprint sensorassociated with at least one of the smart TV a mobile device, asmartphone, a laptop computer, a tablet device, a wearable device, anInternet of Things (IoT) device, an Internet of Everything (IoE) device,an IoT hub, or an IoE hub.
 16. A smart television (TV), comprising:means for receiving an indication of upcoming media programming, whereinthe upcoming media programming is based on a user profile; means foridentifying one or more devices in communication with the smart TV, eachof the one or more devices including at least one of a microphone or acamera; means for instructing at least one identified device to detectaudio signals using its respective microphone, or to detect visualsignals using its respective camera; means for selecting at least onedevice of the one or more devices based on the detected audio signal ordetected visual signal; and means for providing instructions to theselected device to output a notification related to the upcoming mediaprogramming.
 17. The smart TV of claim 16, wherein the one or moredevices includes at least one of a mobile device, a smartphone, a laptopcomputer, a tablet device, a wearable device, an Internet of Things(IoT) device, an Internet of Everything (IoE) device, an IoT hub, an IoEhub, or another smart TV.
 18. The smart TV of claim 16, wherein theupcoming media programming is one of a live television program, arecorded television program, a broadcast television program, or anapplication-provided program.
 19. The smart TV of claim 16, wherein thenotification includes at least one of a push message, a SMS message, aWay2SMS message, an audio alert, an audio message, or an email message.20. The smart TV of claim 16, further comprising presenting the upcomingmedia programming in a favorite channel list.
 21. The smart TV of claim20, further comprising: means for obtaining media programming viewingdata, wherein the media programming viewing data includes at least oneof a historical time and a historical date that one or more mediaprograms were viewed on the smart TV; means for obtaining at least oneof a current time and a current date; means for processing the mediaprogramming viewing data to determine a probability of the one or moremedia programs being viewed on the smart TV based on at least one of thecurrent time and the current date; and means for presenting the favoritechannel list based on the determined probability of the one or moremedia programs being viewed.
 22. The smart TV of claim 21, wherein themeans for processing the media programming viewing data includesemploying a neural network model.
 23. The smart TV of claim 22, whereinemploying the neural network model comprises: determining a durationthat the one or more media programs were viewed on the smart TV for eachof the at least one of the historical time and the historical date;setting a threshold time duration; comparing the determined duration tothe threshold time duration; and filtering out the one or more mediaprograms viewed below the threshold time duration.
 24. The smart TV ofclaim 21, further comprising: means for adjusting at least one of avolume or a brightness of the smart TV, wherein the adjusting is basedon at least one of the historical time and the historical date.
 25. Thesmart TV of claim 21, further comprising means for restricting access toone or more media programs.
 26. A non-transitory computer-readablemedium comprising processor-executable program code configured to causea processor of a smart television (TV) to: receive an indication ofupcoming media programming, wherein the upcoming media programming isbased on a user profile; identify one or more devices in communicationwith the smart TV, each of the one or more devices including at leastone of a microphone or a camera; instruct at least one identified deviceto detect audio signals using its respective microphone, or to detectvisual signals using its respective camera; select at least one deviceof the one or more devices based on the detected audio signal ordetected visual signal; and provide instructions to the selected deviceto output a notification related to the upcoming media programming. 27.The non-transitory computer-readable medium of claim 26, whereinselecting the first device based on the detected audio signal includesrecognizing a voice.
 28. The non-transitory computer-readable medium ofclaim 27, wherein the processor is further capable of executingprocessor-executable program code to: determine a distance to therecognized voice, and wherein selecting the first device is furtherbased on the determined distance.
 29. The non-transitorycomputer-readable medium of claim 26, wherein selecting the first devicebased on the detected visual signals includes recognizing a face. 30.The non-transitory computer-readable medium of claim 29, whereinrecognizing the face includes a face recognition technique.